clk: bcm: Support rate change propagation on bcm2835 clocks
authorBoris Brezillon <boris.brezillon@free-electrons.com>
Thu, 1 Dec 2016 21:00:19 +0000 (22:00 +0100)
committerRaspbian kernel package updater <root@raspbian.org>
Thu, 9 Mar 2017 17:52:28 +0000 (17:52 +0000)
commit681419f43b2dceb8a1cbfb1fc3098bee4973558a
treec719cf1528801c52f3ad2b9c6dc416cdbc03eac7
parente93cac3fe731618eb27212d819aa9299b8deac1c
clk: bcm: Support rate change propagation on bcm2835 clocks

Some peripheral clocks, like the VEC (Video EnCoder) clock need to be set
to a precise rate (in our case 108MHz). With the current implementation,
where peripheral clocks are not allowed to forward rate change requests
to their parents, it is impossible to match this requirement unless the
bootloader has configured things correctly, or a specific rate has been
assigned through the DT (with the assigned-clk-rates property).

Add a new field to struct bcm2835_clock_data to specify which parent
clocks accept rate change propagation, and support set rate propagation
in bcm2835_clock_determine_rate().

Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
(cherry picked from commit 155e8b3b0ee320ae866b97dd31eba8a1f080a772)
drivers/clk/bcm/clk-bcm2835.c